package com.zm.springcloudsentinel.controller.exceptionController;

import com.alibaba.csp.sentinel.annotation.SentinelResource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 异常忽略，配置后，被忽略的异常，fallback就不会再去对所配置异常生效，下面为例会报计算异常，如果配置的时更上级的异常则会覆盖很多种异常
 * 这里也可以以将兜底方法写在其他类中，参数和返回值也是需要一致，以及注解也可以配置兜底方法所在类，用法语流控降级异常（BlockException）一致
 */
@RestController
@RequestMapping("/ei")
public class ExceptionToIgnoreController {

    @SentinelResource(fallback = "eiAno1",exceptionsToIgnore = NumberFormatException.class)
    @RequestMapping("/ano1")
    public String runExFb(){
        int i=10/0;
        return "success";
    }

    public String fallbackAno1(Throwable throwable){
        return "sentinel提供的处理资源异常的fallback:"+throwable.getMessage();
    }
}
